Desenvolvimento Multicamadas em Csharp (C#(csharp)) - Parte 5 - Exemplo prático [Classes Auxiliares]
Nesse artigo vamos criar a lógica de negócios e a respectiva camada de apresentação para as informações auxiliares da apólice. Nessa ordem: Dano, Tipo de Sinistro, e Modelos de Carros.
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
st1\:*{behavior:url(#ieooui) }
A tabela de apólices é sem dúvida a mais importante do Sistema e para que possa ser feito o cadastro de uma nova apólice inicialmente temos que possuir dados nas tabelas de clientes (tbCliente) [não numerada pois nos artigos anteriores implementamos a funcionalidade para a mesma] temos que ter os dados já cadastrados na tabela de modelo de carros (tbModelo) [6] e a partir da apólice cadastrada gerar as parcelas [5] para o pagamento por parte do cliente.


Vamos montar a interface com o usuário nesses três formulários, para tanto acrescente os controles e modifique os nomes conforme solicitado:

Desenvolvendo uma aplicação Multicamadas para Windows em C#
Parte 5)
Introdução
Este artigo é o quinto de uma série de sete artigos que apresentam um exemplo prático e simples abordando o desenvolvimento em camadas em C#, sabemos que a programação orientada a objetos (POO) possibilita uma abordagem simples para a utilização de dados usando objetos.
Revisão
No primeiro artigo foi apresentado um cenário para o desenvolvimento da aplicação e criado o Banco de Dados com as respectivas tabelas e o mapeamento Entidade Relacionamento entre elas.
No segundo artigo dessa série foi apresentada a classe da camada “2 – Camada Intermediaria” que representa a lógica do controlador (persistir dados), classe essa que fez a interface entre a lógica de negócio e os dados no banco de dados.
No terceiro artigo foi apresentada a classe clnClientes.cs que possui as regras de negócios do Sistema de Controle de Apólices de Seguro proposto desde o primeiro artigo.
No quarto foi apresentado a camada de apresentação, onde foram criados os formulários para cadastro de dados de clientes e o formulário de pesquisa genérico que será utilizado em toda a aplicação.
Nesse quinto artigo estudaremos mais sobre o Projeto de Apólice de Seguros, de forma geral.
Iniciando o Estudo:
Observe a Figura 1 - Diagrama ER Numerado.


Figura 1 - Diagrama ER Numerado
A tabela de apólices é sem dúvida a mais importante do Sistema e para que possa ser feito o cadastro de uma nova apólice inicialmente temos que possuir dados nas tabelas de clientes (tbCliente) [não numerada pois nos artigos anteriores implementamos a funcionalidade para a mesma] temos que ter os dados já cadastrados na tabela de modelo de carros (tbModelo) [6] e a partir da apólice cadastrada gerar as parcelas [5] para o pagamento por parte do cliente.
Já em relação aos sinistros ocorridos [2] para que possa ser cadastrado, inicialmente temos que ter também a apólice cadastrada [1] e previamente cadastrados os tipos de danos que podem ocorrer [3] e os tipos de sinistros já cadastrados.
Nesse artigo vamos criar a lógica de negócios e a respectiva camada de apresentação para as informações auxiliares da apólice. Nessa ordem: Dano, Tipo de Sinistro, e Modelos de Carros.
Mão na Massa:
1) Com o aplicativo aberto adicione três novas classes chamadas respectivamente: clnDanos.cs, clnTipos.cs, clnModelos.cs, conforme figura:

Figura 2 - Outras Classes
2) Agora adicione na Pasta [Camada Apresentacao] três novos formulários com os nomes respectivamente: FrmDanos.cs, FrmTipos.cs e FrmModelos.cs.

Figura 3 - Outros Formulários
Vamos montar a interface com o usuário nesses três formulários, para tanto acrescente os controles e modifique os nomes conforme solicitado:
3) Alterne para o formulário FrmDados e crie essa interface, dê o nome para os controles em azul.

Figura 4 - FrmDanos.cs

Figura 4 - FrmDanos.cs
Obs: Como boa prática utilize os mesmo padrão de nomes para os botões de comando.
4) Alterne para o formulário FrmTipos e crie essa interface, dê o nome para os controles em azul.
<!--[if !vml]-->
Figura 5 - FrmTipos.cs
5) Alterne para o formulário FrmModelos e crie essa interface, dê o nome para os controles em azul.
Figura 5 - FrmTipos.cs

Figura 6 – FrmModelos
Lógica de Negócios das classes criadas
Como a lógica é idêntica a apresentada nos artigos anteriores. Aqui será apresentado apenas o código de cada classe. Acredita-se ser desnecessário o detalhamento, pois é considerado que o leitor tenha feito a aplicação até o presente.
Abaixo classe: clnDados até com as declaração dos namespaces.
Copie e cole o código. Mas não deixe de analisá-lo novamente.
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace Seguros_OO.Camada_Intermediaria.Logica_Negocios
{
class clnDanos
{
//1 - Campos privados a classe
private int idDano;
private string descDano;
//2 - propriedades, acesso aos campos privados
public int IdDano
{
get { return idDano; }
set { idDano = value; }
}
public string DescDano
{
get { return descDano; }
set { descDano = value; }
}
//3 - métodos da classe de Negócios (clnDanos.cs)
//3.1 Buscar dados de danos cujo codigo foi especificado
public void Buscar()
{
string csql;
csql = "Select * From tbDano where idDano=" + IdDano;
DataSet ds;
clsDados seguros = new clsDados();
ds = seguros.RetornarDataSet(csql);
if (ds.Tables[0].Rows.Count > 0)
{
Array dados = ds.Tables[0].Rows[0].ItemArray;
idDano = Convert.ToInt16(dados.GetValue(0));
descDano = Convert.ToString(dados.GetValue(1));
}
}
//3.2 Buscar o próximo Id Numerico para
//inclusao de um novo tipo de dano.
public int BuscarId()
{
string csql;
csql = "Select Top 1 (idDano) From tbDano order by idDano desc";
int IdBuscado;
clsDados seguros = new clsDados();
IdBuscado = seguros.RetornarIdNumerico(csql);
return IdBuscado;
}
//3.3 Método para incluir um novo tipo de dano no
//Banco de dados
public void Gravar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Insert into tbDano");
csql.Append("(");
csql.Append("idDano,");
csql.Append("descDano) Values(");
csql.Append(idDano);
csql.Append(",'" + descDano + "')");
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.4 Método para atualizar (alterar um registro)
public void Atualizar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Update tbDano ");
csql.Append("set idDano=");
csql.Append(idDano);
csql.Append(", descDano='");
csql.Append(descDano);
csql.Append("' where idDano=");
csql.Append(IdDano);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.5 Método para excluir um dano do
//Banco de dados
public void Excluir()
{
StringBuilder csql = new StringBuilder();
csql.Append("Delete From tbDano ");
csql.Append(" where idDano=");
csql.Append(IdDano);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.6 Método Buscar todos os Danos
public DataSet BuscarTodos()
{
string csql;
csql = "Select * From tbDano order by descDano";
DataSet ds;
clsDados seguros = new clsDados();
ds = seguros.RetornarDataSet(csql);
return ds;
} } } |
Abaixo classe: clnTipos
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace Seguros_OO.Camada_Intermediaria.Logica_Negocios
{
class clnTipos
{
//1 - Campos privados a classe
private int idTipo;
private string descTipo;
//2 - propriedades, acesso aos campos privados
public int IdTipo
{
get { return idTipo; }
set { idTipo = value; }
}
public string DescTipo
{
get { return descTipo; }
set { descTipo = value; }
}
//3 - métodos da classe de Negócios (clnTipos.cs)
//3.1 Buscar dados de tipos cujo codigo foi especificado
public void Buscar()
{
string csql;
csql = "Select * From tbTipo where idTipo=" + IdTipo;
DataSet ds;
clsDados seguros = new clsDados();
ds = seguros.RetornarDataSet(csql);
if (ds.Tables[0].Rows.Count > 0)
{
Array dados = ds.Tables[0].Rows[0].ItemArray;
idTipo = Convert.ToInt16(dados.GetValue(0));
descTipo = Convert.ToString(dados.GetValue(1));
}
}
//3.2 Buscar o próximo Id Numerico para
//inclusao de um novo tipo.
public int BuscarId()
{
string csql;
csql = "Select Top 1 (idTipo) From tbTipo order by idTipo desc";
int IdBuscado;
clsDados seguros = new clsDados();
IdBuscado = seguros.RetornarIdNumerico(csql);
return IdBuscado;
}
//3.3 Método para incluir um novo tipo no
//Banco de dados
public void Gravar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Insert into tbTipo");
csql.Append("(");
csql.Append("idTipo,");
csql.Append("descTipo) Values(");
csql.Append(idTipo);
csql.Append(",'" + descTipo + "')");
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.4 Método para atualizar (alterar um registro)
public void Atualizar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Update tbTipo ");
csql.Append("set idTipo=");
csql.Append(idTipo);
csql.Append(", descTipo='");
csql.Append(descTipo);
csql.Append("' where idTipo=");
csql.Append(idTipo);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.5 Método para excluir um tipo do
//Banco de dados
public void Excluir()
{
StringBuilder csql = new StringBuilder();
csql.Append("Delete From tbTipo ");
csql.Append(" where idTipo=");
csql.Append(idTipo);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.6 Método Buscar todos os Tipos
public DataSet BuscarTodos()
{
string csql;
csql = "Select * From tbTipo order by descTipo";
DataSet ds;
clsDados seguros = new clsDados();
ds = seguros.RetornarDataSet(csql);
return ds;
} }
} |
Abaixo classe: clnModelos
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace Seguros_OO.Camada_Intermediaria.Logica_Negocios
{
class clnModelos
{
//1 - Campos privados a classe
private int idModelo;
private string descModelo;
private string descMarca;
//2 - propriedades, acesso aos campos privados
public int IdModelo
{
get { return idModelo; }
set { idModelo = value; }
}
public string DescModelo
{
get { return descModelo; }
set { descModelo = value; }
}
public string DescMarca
{
get { return descMarca; }
set { descMarca = value; }
}
//3 - métodos da classe de Negócios (clnModelos.cs)
//3.1 Buscar dados de Modelos cujo codigo foi especificado
public void Buscar()
{
string csql;
csql = "Select * From tbModelo where idModelo=" + IdModelo;
DataSet ds;
clsDados seguros = new clsDados();
ds = seguros.RetornarDataSet(csql);
if (ds.Tables[0].Rows.Count > 0)
{
Array dados = ds.Tables[0].Rows[0].ItemArray;
idModelo = Convert.ToInt16(dados.GetValue(0));
descModelo = Convert.ToString(dados.GetValue(1));
descMarca = Convert.ToString(dados.GetValue(2));
}
}
//3.2 Buscar o próximo Id Numerico para
//inclusao de um novo modelo.
public int BuscarId()
{
string csql;
csql = "Select Top 1 (idModelo) From tbModelo order by idModelo desc";
int IdBuscado;
clsDados seguros = new clsDados();
IdBuscado = seguros.RetornarIdNumerico(csql);
return IdBuscado;
}
//3.3 Método para incluir um novo modelo no
//Banco de dados
public void Gravar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Insert into tbModelo");
csql.Append("(");
csql.Append("idModelo,");
csql.Append("descModelo,");
csql.Append("descMarca) Values(");
csql.Append(idModelo);
csql.Append(",'" + descModelo + "'");
csql.Append(",'" + descMarca + "')");
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.4 Método para atualizar (alterar um registro)
public void Atualizar()
{
StringBuilder csql = new StringBuilder();
csql.Append("Update tbModelo ");
csql.Append("set idModelo=");
csql.Append(idModelo);
csql.Append(", descModelo='");
csql.Append(descModelo);
csql.Append("', descMarca='");
csql.Append(descMarca);
csql.Append("' where idModelo=");
csql.Append(idModelo);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
//3.5 Método para excluir um dano do
//Banco de dados
public void Excluir()
{
StringBuilder csql = new StringBuilder();
csql.Append("Delete From tbModelo ");
csql.Append(" where idModelo=");
csql.Append(idModelo);
clsDados seguros = new clsDados();
seguros.ExecutarComando(csql.ToString());
}
}
}
|
Camada de Apresentação
Bom. Vamos agora a camada de apresentação. Seria interessante, você copiar os código para dentro de cada evento (um a um) ou se copiar o código do formulário não se esqueça de instanciar os eventos na inicialização do formulário. Siga minha dica depois confira com o código aqui colocado.
Formulário: FrmDanos
Abaixo código completo com todos os eventos e métodos declarados:
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Seguros_OO.Camada_Intermediaria.Logica_Negocios;
namespace Seguros_OO.Camada_Apresentacao
{
public partial class FrmDanos : Form
{
public FrmDanos()
{
InitializeComponent();
}
//Método público para limpar caixas de texto
public void LimparTxt(Control controles)
{
foreach (Control ctl in controles.Controls)
{
if (ctl is TextBox) ctl.Text = "";
}
}
private void btnIncluir_Click(object sender, EventArgs e)
{
try
{
clnDanos dano = new clnDanos();
//Dispara o método para buscar o IdDano
dano.IdDano = dano.BuscarId();
dano.DescDano = txtdescDano.Text;
dano.Gravar();
string mensagem = "Registro Dano: " +
dano.IdDano + "\nDescrição: " + dano.DescDano +
"\nGravado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnCancelar.Enabled = false;
txtidDano.Enabled = true;
txtidDano.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnAtualizar_Click(object sender, EventArgs e)
{
try
{
clnDanos dano = new clnDanos();
dano.IdDano = int.Parse(txtidDano.Text);
dano.DescDano = txtdescDano.Text;
string mensagem = "Registro Dano: " +
dano.IdDano + "\nNome: " + dano.DescDano +
"\nAlterado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidDano.Enabled = true;
txtidDano.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnExcluir_Click(object sender, EventArgs e)
{
string pergunta;
pergunta = "Deseja excluir o dado: \n" +
txtidDano.Text + ": " + txtdescDano.Text +
" ?";
int ret = Convert.ToInt16(MessageBox.Show(pergunta, "Atenção",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question));
if (ret == 6)
{
clnDanos dano = new clnDanos();
dano.IdDano = int.Parse(txtidDano.Text);
dano.DescDano = txtdescDano.Text;
dano.Excluir();
string mensagem = "Registro Dano: " +
dano.IdDano + "\nDescrição: " + dano.DescDano +
"\nExcluído com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidDano.Enabled = true;
txtidDano.Focus();
}
else
{
MessageBox.Show("Operação Cancelada",
"Cancelada", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
private void btnCancelar_Click(object sender, EventArgs e)
{
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidDano.Enabled = true;
txtidDano.Focus();
}
private void btnSair_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnProcurar_Click(object sender, EventArgs e)
{
FrmPesquisa f = new FrmPesquisa();
f.Text = "Consulta Tipos de Danos";
f.Tag = "tbDano"; //nome da tabela (macete) :)
f.ShowDialog();
}
private void txtidDano_Leave(object sender, EventArgs e)
{
int vidDano = 0;
if (txtidDano.Text.Trim() != "")
{
vidDano = int.Parse(txtidDano.Text);
}
clnDanos dano = new clnDanos();
dano.IdDano = vidDano;
dano.Buscar();
if (dano.DescDano == null)
{
//preparando para inclusao
LimparTxt(groupBox1);
txtidDano.Text = "";
txtidDano.Enabled = false;
btnIncluir.Enabled = true;
btnCancelar.Enabled = true;
}
else
{
//preparando para alteracao
LimparTxt(groupBox1);
txtidDano.Enabled = false;
txtidDano.Text = Convert.ToString(dano.IdDano);
txtdescDano.Text = Convert.ToString(dano.DescDano);
btnAtualizar.Enabled = true;
btnCancelar.Enabled = true;
btnExcluir.Enabled = true;
}
}
}
} |
Formulário: FrmTipos
Abaixo código completo com todos os eventos e métodos declarados:
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Seguros_OO.Camada_Intermediaria.Logica_Negocios;
namespace Seguros_OO.Camada_Apresentacao
{
public partial class FrmTipos : Form
{
public FrmTipos()
{
InitializeComponent();
}
//Método público para limpar caixas de texto
public void LimparTxt(Control controles)
{
foreach (Control ctl in controles.Controls)
{
if (ctl is TextBox) ctl.Text = "";
}
}
private void btnIncluir_Click(object sender, EventArgs e)
{
try
{
clnTipos tipo = new clnTipos();
//Dispara o método para buscar o IdTipo
tipo.IdTipo = tipo.BuscarId();
tipo.DescTipo = txtdescTipo.Text;
tipo.Gravar();
string mensagem = "Registro Tipo: " +
tipo.IdTipo + "\nDescrição: " + tipo.DescTipo +
"\nGravado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnCancelar.Enabled = false;
txtidTipo.Enabled = true;
txtidTipo.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnAtualizar_Click(object sender, EventArgs e)
{
try
{
clnTipos tipo = new clnTipos();
tipo.IdTipo = int.Parse(txtidTipo.Text);
tipo.DescTipo = txtdescTipo.Text;
string mensagem = "Registro Dano: " +
tipo.IdTipo + "\nNome: " + tipo.DescTipo +
"\nAlterado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidTipo.Enabled = true;
txtidTipo.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnExcluir_Click(object sender, EventArgs e)
{
string pergunta;
pergunta = "Deseja excluir o tipo: \n" +
txtidTipo.Text + ": " + txtdescTipo.Text +
" ?";
int ret = Convert.ToInt16(MessageBox.Show(pergunta, "Atenção",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question));
if (ret == 6)
{
clnTipos tipo = new clnTipos();
tipo.IdTipo = int.Parse(txtidTipo.Text);
tipo.DescTipo = txtdescTipo.Text;
tipo.Excluir();
string mensagem = "Registro Tipo: " +
tipo.IdTipo + "\nDescrição: " + tipo.DescTipo +
"\nExcluído com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidTipo.Enabled = true;
txtidTipo.Focus();
}
else
{
MessageBox.Show("Operação Cancelada",
"Cancelada", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
private void btnCancelar_Click(object sender, EventArgs e)
{
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidTipo.Enabled = true;
txtidTipo.Focus();
}
private void btnSair_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnProcurar_Click(object sender, EventArgs e)
{
FrmPesquisa f = new FrmPesquisa();
f.Text = "Consulta de Tipos de Sinistros";
f.Tag = "tbTipo"; //nome da tabela (macete) :)
f.ShowDialog();
}
private void txtidTipo_Leave(object sender, EventArgs e)
{
int vidtipo = 0;
if (txtidTipo.Text.Trim() != "")
{
vidtipo = int.Parse(txtidTipo.Text);
}
clnTipos tipo = new clnTipos();
tipo.IdTipo = vidtipo;
tipo.Buscar();
if (tipo.DescTipo == null)
{
//preparando para inclusao
LimparTxt(groupBox1);
txtidTipo.Text = "";
txtidTipo.Enabled = false;
btnIncluir.Enabled = true;
btnCancelar.Enabled = true;
}
else
{
//preparando para alteracao
LimparTxt(groupBox1);
txtidTipo.Enabled = false;
txtidTipo.Text = Convert.ToString(tipo.IdTipo);
txtdescTipo.Text = Convert.ToString(tipo.DescTipo);
btnAtualizar.Enabled = true;
btnCancelar.Enabled = true;
btnExcluir.Enabled = true;
}
}
}
} |
Formulário: FrmModelos
Abaixo código completo com todos os eventos e métodos declarados:
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Seguros_OO.Camada_Intermediaria.Logica_Negocios;
namespace Seguros_OO.Camada_Apresentacao
{
public partial class FrmModelos : Form
{
public FrmModelos()
{
InitializeComponent();
}
//Método público para limpar caixas de texto
public void LimparTxt(Control controles)
{
foreach (Control ctl in controles.Controls)
{
if (ctl is TextBox) ctl.Text = "";
}
}
private void txtidModelo_Leave(object sender, EventArgs e)
{
int vidmodelo = 0;
if (txtidModelo.Text.Trim() != "")
{
vidmodelo = int.Parse(txtidModelo.Text);
}
clnModelos modelo= new clnModelos();
modelo.IdModelo = vidmodelo;
modelo.Buscar();
if (modelo.DescModelo == null)
{
//preparando para inclusao
LimparTxt(groupBox1);
txtidModelo.Text = "";
txtidModelo.Enabled = false;
btnIncluir.Enabled = true;
btnCancelar.Enabled = true;
}
else
{
//preparando para alteracao
LimparTxt(groupBox1);
txtidModelo.Enabled = false;
txtidModelo.Text = Convert.ToString(modelo.IdModelo);
txtdescModelo.Text = Convert.ToString(modelo.DescModelo);
txtdescMarca.Text = Convert.ToString(modelo.DescMarca);
btnAtualizar.Enabled = true;
btnCancelar.Enabled = true;
btnExcluir.Enabled = true;
}
}
private void btnIncluir_Click(object sender, EventArgs e)
{
try
{
clnModelos modelo = new clnModelos();
//Dispara o método para buscar o idModelo
modelo.IdModelo = modelo.BuscarId();
modelo.DescModelo = txtdescModelo.Text;
modelo.DescMarca = txtdescMarca.Text;
modelo.Gravar();
string mensagem = "Registro Modelo: " +
modelo.IdModelo + "\nDescrição: " + modelo.DescModelo +
"\nGravado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnCancelar.Enabled = false;
txtidModelo.Enabled = true;
txtidModelo.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnAtualizar_Click(object sender, EventArgs e)
{
try
{
clnModelos modelo = new clnModelos();
modelo.IdModelo = int.Parse(txtidModelo.Text);
modelo.DescModelo= txtdescModelo.Text;
modelo.DescMarca = txtdescMarca.Text;
modelo.Atualizar();
string mensagem = "Registro Modelo: " +
modelo.IdModelo + "\nNome: " + modelo.DescModelo +
"\nAlterado com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidModelo.Enabled = true;
txtidModelo.Focus();
}
catch (Exception ex)
{
MessageBox.Show("Aconteu o erro: " + ex.Message, "Erro");
}
}
private void btnExcluir_Click(object sender, EventArgs e)
{
try
{
string pergunta;
pergunta = "Deseja excluir o modelo: \n" +
txtidModelo.Text + ": " + txtdescModelo.Text +
" ?";
int ret = Convert.ToInt16(MessageBox.Show(pergunta, "Atenção",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question));
if (ret == 6)
{
clnModelos modelo = new clnModelos();
modelo.IdModelo = int.Parse(txtidModelo.Text);
modelo.DescModelo = txtdescModelo.Text;
modelo.Excluir();
string mensagem = "Registro Dano: " +
modelo.IdModelo + "\nDescrição: " + modelo.DescModelo +
"\nExcluído com sucesso";
MessageBox.Show(mensagem, "Sucesso",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
LimparTxt(groupBox1);
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidModelo.Enabled = true;
txtidModelo.Focus();
}
else
{
MessageBox.Show("Operação Cancelada",
"Cancelada", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
catch(Exception ex)
{
MessageBox.Show("Não foi possível excluir, aconteceu " +
" o seguinte erro: "+ ex.Message.ToString());
}
}
private void btnCancelar_Click(object sender, EventArgs e)
{
LimparTxt(groupBox1);
btnIncluir.Enabled = false;
btnAtualizar.Enabled = false;
btnCancelar.Enabled = false;
btnExcluir.Enabled = false;
txtidModelo.Enabled = true;
txtidModelo.Focus();
}
private void btnProcurar_Click(object sender, EventArgs e)
{
FrmPesquisa f = new FrmPesquisa();
f.Text = "Consulta Tipos de Danos";
f.Tag = "tbModelo"; //nome da tabela (macete) :)
f.ShowDialog();
}
private void btnSair_Click(object sender, EventArgs e)
{
this.Close();
}
}
} |
Conclusão
Como vimos. A tabela de apólices é considerada a mais importante do Sistema e para que possa ser feito o cadastro de uma nova apólice, precisamos de alguns dados auxiliares. Estes dados poderão ser cadastrados a partir das classes que representam a lógica de negócios e a respectiva camada de apresentação criadas durante este artigo. Respectivamente: Dano, Tipo de Sinistro, e Modelos de Carros.
Gostaria de lembrar a todos que faltam apenas dois artigos, e ao final colocarei disponível o código, para que possíveis erros cometidos durante as partes mão na massa não venham a prejudicá-lo.
:-)
Um grande abraço. Semana que vem posto o sexto artigo.
Marcos Roberto de Moraes [Maromo]
Administrador de Sistema de Informação

Desenvolvimento Multicamadas em Csharp (C#(csharp)) - Parte 5 - Exemplo prático [Classes Auxiliares]
[Este post ainda não foi associado a uma sequência]
Você está em:
canal .net
Publicidade
Marcos Roberto De Moraes
Space do autor
Mestre em Educação pela UNISAL.
Especialista em Administração de Sistemas de Informação pela Universidade Federal de Lavras-MG (UFLA).
Licenciado pleno em informática pela Universidade Metodista de Piracicaba (UNIMEP).
Graduado em Tecnologia em Processamento de Dados pela Unipinhal.
...
Especialista em Administração de Sistemas de Informação pela Universidade Federal de Lavras-MG (UFLA).
Licenciado pleno em informática pela Universidade Metodista de Piracicaba (UNIMEP).
Graduado em Tecnologia em Processamento de Dados pela Unipinhal.
...
Space do autor


8
0
